/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package nexus.adec;

import nexus.adec.recursos.SelectoItemRol;
import control.*;
import nexus.adec.ConfigurarPrivilegios;
import java.util.ArrayList;
import javax.faces.context.FacesContext;
import javax.faces.el.VariableResolver;
import javax.faces.model.SelectItem;
import javax.swing.JOptionPane;
import nexus.adec.GestorEspacioDB;
import nexus.adec.Usuario;

/**
 *
 * @author juampi
 */
public class GestorRol {
    private String codigoEspacio;
    private String nombreRol;
    private String codigoRol;

    private ArrayList<SelectoItemRol> individuos;

    private String[] gruposSeleccionandos;
    private ArrayList<SelectItem> gruposDisponibles;
    private boolean mostrar;

    public GestorRol(String codigoEspacio,String nombre,String codigo) {
        this.codigoEspacio = codigoEspacio;
        nombreRol = nombre;
        codigoRol = codigo;
        mostrar = false;
    }
    /**
     * @return the nombreRol
     */
    public String getNombreRol() {
        //JOptionPane.showMessageDialog(null, "en rol bean pide el nombre de rol");
        return nombreRol;
    }

    /**
     * @param nombreRol the nombreRol to set
     */
    public void setNombreRol(String nombreRol) {
        this.nombreRol = nombreRol;
    }

    /**
     * @return the codigoRol
     */
    public String getCodigoRol() {
        return codigoRol;
    }

    /**
     * @param codigoRol the codigoRol to set
     */
    public void setCodigoRol(String codigoRol) {
        this.codigoRol = codigoRol;
    }

    public String[] getGruposSeleccionandos() {
        return gruposSeleccionandos;
    }

    /**
     * @param gruposSeleccionandos the gruposSeleccionandos to set
     */
    public void setGruposSeleccionandos(String[] gruposSeleccionandos) {
        this.gruposSeleccionandos = gruposSeleccionandos;
    }

    /**
     * @return the gruposDisponibles
     */
    public ArrayList<SelectItem> getGruposDisponibles() {
        return gruposDisponibles;
    }

    /**
     * @param gruposDisponibles the gruposDisponibles to set
     */
    public void setGruposDisponibles(ArrayList<SelectItem> gruposDisponibles) {
        this.gruposDisponibles = gruposDisponibles;
    }

    /**
     * @return the mostrar
     */
    public boolean isMostrar() {
        return mostrar;
    }

    /**
     * @param mostrar the mostrar to set
     */
    public void setMostrar(boolean mostrar) {
        this.mostrar = mostrar;
    }

    /**
     * @return the individuos
     */
    public ArrayList<SelectoItemRol> getIndividuos() {
        
        individuos = new ArrayList<SelectoItemRol>();
        //ArrayList<Usuario> usuarios = DBMS.getInstance().listarUsuariosPorRol(codigoEspacio, nombreRol);
        if(!codigoRol.equals("Estudiante")) {
//            ArrayList<Usuario> usuarios = GestorEspacioDB.getInstance().listarUsuariosRol(codigoEspacio, codigoRol);
  //          for (Usuario user : usuarios) {
    //            SelectoItemRol persona = new SelectoItemRol(user.getNombreCompleto(),user.getNombreUsuario(),codigoRol);
      //          individuos.add(persona);
        //    }
        }
        return individuos;
    }

    /**
     * @param individuos the individuos to set
     */
    public void setIndividuos(ArrayList<SelectoItemRol> individuos) {
        this.individuos = individuos;
    }

    /**
     * @return the codigoEspacio
     */
    public String getCodigoEspacio() {
        return codigoEspacio;
    }

    /**
     * @param codigoEspacio the codigoEspacio to set
     */
    public void setCodigoEspacio(String codigoEspacio) {
        this.codigoEspacio = codigoEspacio;
    }
    public String cambiar() {
        String res="#";
         FacesContext context  = FacesContext.getCurrentInstance();
            VariableResolver vr = context.getApplication().getVariableResolver();
            ConfigurarPrivilegios privilegiosBean= (ConfigurarPrivilegios)vr.resolveVariable(context,"privilegeosBean");
       /* if(codigoRol.equalsIgnoreCase("Estudiante")) {
            privilegiosBean.setCodigoPersona(getUserBean().getId());
            privilegiosBean.setCodigoRol(codigoRol);
            privilegiosBean.setMostrarTabla(true);
        }else {
            privilegiosBean.setMostrarTabla(false);
        }*/
        //JOptionPane.showMessageDialog(null,"el mostrar en RolBen es "+mostrar);
        return res;
    }
    public UserBean getUserBean() {
        FacesContext context = FacesContext.getCurrentInstance();
        VariableResolver vr = context.getApplication().getVariableResolver();
        UserBean userBean =(UserBean) vr.resolveVariable(context, "userBean");
        return userBean;
    }
}
